package com.ruoyi.web.controller.wechat.request;

import lombok.Data;

import javax.validation.constraints.AssertTrue;
import java.util.List;

/**
 * 图片融合请求
 *
 * @author chenchuan2
 * @date 2025-09-18
 */
@Data
public class ImageFusionRequest {
    
    /**
     * 图片base64列表
     */
    private List<String> base64Images;

    /**
     * 图片URL列表
     */
    private List<String> urlImages;
    
    /**
     * 用户自定义提示词
     */
    private String prompt;
    
    /**
     * 自定义验证：如果提供图片，则总数至少为2张；如果不提供图片，则用于API测试
     */
    @AssertTrue(message = "如果提供图片，至少需要提供2张图片（base64或URL形式）")
    public boolean isValidImages() {
        int base64Count = (base64Images != null) ? base64Images.size() : 0;
        int urlCount = (urlImages != null) ? urlImages.size() : 0;
        int totalCount = base64Count + urlCount;
        
        // 如果没有图片，允许通过（用于API测试）
        if (totalCount == 0) {
            return true;
        }
        
        // 如果有图片，至少需要2张
        return totalCount >= 2;
    }
}
